home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Diamond Collection / The Diamond Collection (Software Vault)(Digital Impact).ISO / cdr37 / areas1_0.zip / AREAS.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-03-26  |  27KB  |  1,292 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.1O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Integer  INTEGER001
  21.     Integer  INTEGER002
  22.     Integer  INTEGER003
  23.     Integer  INTEGER004
  24.     Integer  INTEGER005
  25.     Integer  INTEGER006
  26.     Integer  INTEGER007
  27.     Integer  INTEGER008
  28.     Integer  INTEGER009
  29.     Integer  INTEGER010
  30.     Integer  INTEGER011
  31.     Integer  INTEGER012
  32.     Integer  INTEGER013
  33.     Integer  INTEGER014
  34.     Integer  INTEGER015
  35.     Integer  INTEGER016
  36.     Integer  INTEGER017
  37.     Integer  INTEGER018
  38.     Integer  INTEGER019
  39.     Integer  INTEGER020
  40.     Integer  INTEGER021
  41.     Integer  INTEGER022
  42.     Integer  INTEGER023
  43.     Integer  INTEGER024
  44.     Integer  INTEGER025
  45.     Integer  INTEGER026
  46.     Integer  INTEGER027
  47.     Integer  INTEGER028
  48.     Integer  TINTEGER029(1)
  49.     Integer  INTEGER030
  50.     Integer  INTEGER031
  51.     Integer  INTEGER032
  52.     Integer  INTEGER033
  53.     Integer  TINTEGER034(1)
  54.     Integer  INTEGER035
  55.     Integer  INTEGER036
  56.     Integer  INTEGER037
  57.     Integer  INTEGER038
  58.     Integer  INTEGER039
  59.     Integer  INTEGER040
  60.     Integer  INTEGER041
  61.     Integer  INTEGER042
  62.     Integer  INTEGER043
  63.     Integer  INTEGER044
  64.     Integer  INTEGER045
  65.     Integer  INTEGER046
  66.     Integer  INTEGER047
  67.     Integer  INTEGER048
  68.     String   STRING001
  69.     String   TSTRING002(24)
  70.     String   TSTRING003(1)
  71.     String   TSTRING004(1)
  72.     String   TSTRING005(1,30)
  73.     String   STRING006
  74.     String   STRING007
  75.     String   STRING008
  76.     String   STRING009
  77.     String   STRING010
  78.     String   STRING011
  79.     String   STRING012
  80.     String   STRING013
  81.     String   STRING014
  82.     String   STRING015
  83.     String   STRING016
  84.     String   STRING017
  85.     String   STRING018
  86.     String   STRING019
  87.     String   STRING020
  88.     String   STRING021
  89.     String   STRING022
  90.     String   STRING023
  91.     String   STRING024
  92.     String   STRING025
  93.     String   STRING026
  94.     String   STRING027
  95.     String   TSTRING028(1)
  96.     String   STRING029
  97.     String   TSTRING030(1)
  98.     String   STRING031
  99.     String   STRING032
  100.     String   STRING033
  101.     String   STRING034
  102.     String   STRING035
  103.     String   STRING036
  104.     String   STRING037
  105.     String   STRING038
  106.     String   STRING039
  107.     String   STRING040
  108.     String   STRING041
  109.     String   STRING042
  110.     String   STRING043
  111.     String   STRING044
  112.     String   STRING045
  113.     String   STRING046
  114.     String   STRING047
  115.     String   STRING049
  116.     String   STRING050
  117.     String   STRING051
  118.     String   STRING052
  119.     String   STRING053
  120.     String   STRING054
  121.     String   TSTRING055(3)
  122.     String   TSTRING056(12)
  123.     String   TSTRING057(7)
  124.     Declare  Procedure PROC001(String STRING048)
  125.  
  126. ;------------------------------------------------------------------------------
  127.  
  128.     STRING001 = "v1.0  "
  129.     STRING027 = TokenStr()
  130.     Gosub LABEL046
  131.     Gosub LABEL033
  132.     If (Exist(PPEPath() + "AREAS.CFG")) Then
  133.         FOpen 1, PPEPath() + "AREAS.CFG", 0, 2
  134.         INTEGER016 = 1
  135.         :LABEL001
  136.         If (Ferr(1)) Goto LABEL003
  137.         FGet 1, STRING024
  138.         If (Left(STRING024, 1) == ";") Goto LABEL002
  139.         TSTRING002(INTEGER016) = STRING024
  140.         Inc INTEGER016
  141.         :LABEL002
  142.         Goto LABEL001
  143.         :LABEL003
  144.         STRING016 = Left(TSTRING002(1), 4)
  145.         STRING017 = Left(TSTRING002(2), 4)
  146.         STRING018 = Left(TSTRING002(3), 4)
  147.         STRING019 = Left(TSTRING002(4), 4)
  148.         STRING009 = Left(TSTRING002(5), 4)
  149.         STRING010 = Left(TSTRING002(6), 4)
  150.         STRING011 = Left(TSTRING002(7), 4)
  151.         STRING014 = Left(TSTRING002(8), 4)
  152.         STRING015 = Left(TSTRING002(9), 4)
  153.         STRING020 = TSTRING002(10)
  154.         STRING021 = TSTRING002(11)
  155.         STRING022 = TSTRING002(12)
  156.         STRING023 = TSTRING002(13)
  157.         INTEGER017 = ToInt(TSTRING002(14))
  158.         STRING034 = Left(TSTRING002(15) + Space(36), 36)
  159.         STRING007 = TSTRING002(16)
  160.         INTEGER031 = TSTRING002(17)
  161.         INTEGER030 = ToInt(TSTRING002(18))
  162.         STRING040 = TSTRING002(19)
  163.         STRING041 = Left(TSTRING002(20), 1)
  164.         STRING036 = TSTRING002(21)
  165.         INTEGER032 = TSTRING002(22)
  166.         INTEGER033 = TSTRING002(23)
  167.         STRING024 = TSTRING002(24)
  168.         Tokenize STRING024
  169.         If (TokCount() > 0) Then
  170.             INTEGER019 = TokCount()
  171.             INTEGER035 = INTEGER019
  172.             Redim TINTEGER034, INTEGER035
  173.             For INTEGER016 = 1 To INTEGER019
  174.                 TINTEGER034(INTEGER016) = ToInt(GetToken())
  175.             Next
  176.         Endif
  177.         FClose 1
  178.     Else
  179.         STRING016 = "@X09"
  180.         STRING017 = "@X09"
  181.         STRING018 = "@X0F"
  182.         STRING019 = "@X0B"
  183.         STRING009 = "@X0B"
  184.         STRING010 = "@X03"
  185.         STRING011 = "@X70"
  186.         STRING014 = "@X1A"
  187.         STRING015 = "@X1B"
  188.         STRING020 = "@X0F @CONFNAME@  @X09(@X07ESC@X09)=Quit, (@X07B@X09)ack, (@X07###,SPACE@X09)=Mark, (@X07ENTER@X09)=Next @X07"
  189.         STRING021 = "@X09Down Arrow To @X0FMove, @X09Enter To @X0FSelect Area, @X0EESC @X0FTo Quit"
  190.         STRING022 = "@X0FS@X07elect @X0FA F@X07ile @X0FG@X07roup @X0F[@X0EQ@X07=Quit@X0F], [@X0EENTER@X07=All@X0F] @X0B"
  191.         STRING023 = "@X0FR@X07ead @X0FI@X07nfo @X0FF@X07or @X0FW@X07hat F@X07ile @X0FG@X07roup @X0F[@X0EQ@X07=Quit@X0F] @X0B"
  192.         INTEGER017 = 2
  193.         STRING034 = "New Uploads                        "
  194.         STRING007 = "N"
  195.         INTEGER031 = 0
  196.         INTEGER030 = 1
  197.         STRING040 = ""
  198.         STRING041 = "Y"
  199.         INTEGER032 = 25
  200.         INTEGER033 = 400
  201.         Redim TINTEGER034, 0
  202.         INTEGER035 = 0
  203.     Endif
  204.     STRING012 = ""
  205.     STRING013 = "@X07"
  206.     STRING008 = "All File Areas                       "
  207.     GetUser
  208.     Redim TSTRING002, 1
  209.     Redim TINTEGER029, INTEGER033
  210.     BOOLEAN001 = 0
  211.     Select Case (Upper(STRING027))
  212.         Case "AGAIN"
  213.             BOOLEAN001 = 1
  214.             Goto LABEL005
  215.         Case "A"
  216.             STRING007 = "N"
  217.             STRING027 = ""
  218.     End Select
  219.     If (InStr(STRING027, "-") <> 0) Then
  220.         STRING027 = Strip(STRING027, "-")
  221.         If (ToInt(STRING027) == 1) Then
  222.             INTEGER017 = 1
  223.             Goto LABEL004
  224.         Endif
  225.         If (ToInt(STRING027) == 2) Then
  226.             INTEGER017 = 2
  227.         Endif
  228.         :LABEL004
  229.         STRING027 = ""
  230.     Endif
  231.     If (STRING027 == "") Then
  232.         :LABEL005
  233.         Redim TSTRING003, INTEGER032
  234.         Redim TSTRING004, INTEGER032
  235.         Redim TSTRING005, INTEGER032, 30
  236.         :LABEL006
  237.         Redim TSTRING028, INTEGER033
  238.         Redim TSTRING030, INTEGER033
  239.         If (Exist(PPEPath() + "AREA" + String(CurConf()) + ".GRP")) Then
  240.             INTEGER019 = CurConf()
  241.             Goto LABEL007
  242.         Endif
  243.         INTEGER019 = 0
  244.         If (INTEGER035 > 0) Then
  245.             For INTEGER023 = 1 To INTEGER035
  246.                 If (TINTEGER034(INTEGER023) == CurConf()) Then
  247.                     INTEGER019 = CurConf()
  248.                     STRING007 = "N"
  249.                     INTEGER023 = INTEGER035
  250.                 Endif
  251.             Next
  252.         Endif
  253.         :LABEL007
  254.         If ((Upper(Left(STRING007, 1)) == "Y") && Exist(PPEPath() + "AREA" + String(INTEGER019) + ".GRP")) Then
  255.             STRING035 = 0
  256.             INTEGER016 = 1
  257.             FOpen 2, PPEPath() + "AREA" + String(INTEGER019) + ".GRP", 0, 2
  258.             :LABEL008
  259.             If (Ferr(2)) Goto LABEL010
  260.             FGet 2, TSTRING003(INTEGER016)
  261.             If (Left(TSTRING003(INTEGER016), 2) == "  ") Goto LABEL009
  262.             FGet 2, STRING006
  263.             Tokenize STRING006
  264.             INTEGER020 = TokCount()
  265.             TSTRING005(INTEGER016, 1) = INTEGER020
  266.             For INTEGER019 = 2 To INTEGER020 + 1
  267.                 TSTRING005(INTEGER016, INTEGER019) = GetToken()
  268.             Next
  269.             FGet 2, STRING006
  270.             TSTRING004(INTEGER016) = STRING006
  271.             Inc INTEGER016
  272.             STRING035 = INTEGER016 - 1
  273.             :LABEL009
  274.             Goto LABEL008
  275.             :LABEL010
  276.             FClose 2
  277.             :LABEL011
  278.             If ((!AnsiOn() || (INTEGER030 == 1)) || (INTEGER017 == 1)) Then
  279.                 Cls
  280.                 PrintLn "@X19┌─────────────────────────────────────────────────────────────────────────────┐@X07"
  281.                 PrintLn "@X19│ @X1F■■ File Groups Selection Menu ■■                               AREAS " + STRING001 + " @X10│@X07"
  282.                 PrintLn "@X19└@X10─────────────────────────────────────────────────────────────────────────────┘@X07@X07"
  283.                 PrintLn 
  284.                 PrintLn "@X09Conference : " + "@X07@CONFNUM@ @X0F@CONFNAME@@X07"
  285.                 PrintLn 
  286.                 For INTEGER016 = 1 To STRING035
  287.                     PrintLn "@X0B" + String(INTEGER016) + "   @X03" + TSTRING003(INTEGER016)
  288.                 Next
  289.                 PrintLn 
  290.                 Goto LABEL012
  291.             Endif
  292.             If (Exist(PPEPath() + "AREA" + String(CurConf()) + ".MNU")) Then
  293.                 DispFile PPEPath() + "AREA" + String(CurConf()) + ".MNU", 0
  294.                 Goto LABEL012
  295.             Endif
  296.             Cls
  297.             PrintLn "@X19┌─────────────────────────────────────────────────────────────────────────────┐@X07"
  298.             PrintLn "@X19│ @X1F■■ File Groups Selection Menu ■■                               AREAS " + STRING001 + " @X10│@X07"
  299.             PrintLn "@X19└@X10─────────────────────────────────────────────────────────────────────────────┘@X07@X07"
  300.             PrintLn STRING016 + "┌─────────────────────────────────────────────────────────────────────────────" + STRING017 + "┐"
  301.             For INTEGER016 = 2 To STRING035 + 1 Step 2
  302.                 STRING024 = STRING016 + "│ " + STRING014 + Right(Space(2) + String(INTEGER016 - 1), 2) + " " + STRING015 + TSTRING003(INTEGER016 - 1)
  303.                 Print Left(STRING024 + Space(40), 48) + Space(6)
  304.                 If (INTEGER016 > STRING035) Then
  305.                     PrintLn Space(36) + STRING017 + "│"
  306.                     Continue
  307.                 Endif
  308.                 PrintLn STRING014 + Left(Right(Space(2) + String(INTEGER016), 2) + " " + STRING015 + TSTRING003(INTEGER016) + Space(50), 40) + STRING017 + "│"
  309.             Next
  310.             PrintLn STRING017 + "└─────────────────────────────────────────────────────────────────────────────┘"
  311.             PrintLn "@X19┌─────────────────────────────────────────────────────────────────────────────┐@X07"
  312.             PrintLn "@X19│ @X1BConference:" + Left("@X17(@X19" + PCBMac("@CONFNUM@") + "@X17)@X1F" + PCBMac("@CONFNAME@") + "@X17" + Space(84), 84) + " @X10│@X07"
  313.             PrintLn "@X19└@X10─────────────────────────────────────────────────────────────────────────────┘@X07@X07"
  314.             :LABEL012
  315.             STRING037 = " "
  316.             InputStr STRING022, STRING037, 7, 2, "1234567890AaQqIiNn", 256 + 2 + 8
  317.             If ((STRING037 == "Q") || (STRING037 == "N")) End
  318.             If (STRING037 == "I") Then
  319.                 STRING037 = "  "
  320.                 PrintLn 
  321.                 InputStr STRING023, STRING037, 7, 3, "1234567890QqNn", 256 + 2 + 8
  322.                 INTEGER022 = ToInt(STRING037)
  323.                 If ((INTEGER022 <= 0) || (INTEGER022 > STRING035)) Goto LABEL011
  324.                 If ((INTEGER022 > 0) && (INTEGER022 < STRING035 + 1)) Then
  325.                     STRING037 = "A"
  326.                     Cls
  327.                     If (Exist(PPEPath() + TSTRING004(INTEGER022))) Goto LABEL013
  328.                     PrintLn "@X1F ■■ Group Information For " + TSTRING003(INTEGER022) + "@X1F ■■ @X07"
  329.                     PrintLn 
  330.                     PrintLn "@X0CSorry! @X04There is no information available for this File Group.@X07"
  331.                     PrintLn 
  332.                     Wait
  333.                     Goto LABEL011
  334.                     Goto LABEL014
  335.                     :LABEL013
  336.                     PrintLn "@X1F ■■ Group Information For " + TSTRING003(INTEGER022) + "@X1F ■■ @X07"
  337.                     If (!(Left(TSTRING004(INTEGER022), 8) == "        ")) DispFile PPEPath() + TSTRING004(INTEGER022) , 0
  338.                     Wait
  339.                     Goto LABEL011
  340.                 Endif
  341.             Endif
  342.             :LABEL014
  343.             If (((STRING037 == "A") || (STRING037 == "")) || (STRING037 == " ")) Then
  344.                 STRING007 = "N"
  345.             Endif
  346.             INTEGER022 = ToInt(STRING037)
  347.             If (INTEGER022 > STRING035) Goto LABEL011
  348.             If ((INTEGER022 > 0) && (INTEGER022 < STRING035 + 1)) Then
  349.                 INTEGER021 = INTEGER022
  350.                 STRING008 = Left(TSTRING003(INTEGER021) + Space(37), 37)
  351.             Endif
  352.             If (STRING007 == "Y") Then
  353.                 PrintLn 
  354.                 PrintLn "@X0ENow Loading @X0A" + TSTRING003(INTEGER021) + "!@X07"
  355.             Endif
  356.         Endif
  357.         INTEGER001 = 96
  358.         INTEGER004 = CurConf()
  359.         STRING031 = ReadLine(PCBDat(), 31)
  360.         FOpen 1, STRING031 + ".@@@", 2, 0
  361.         FClose 1
  362.         FOpen 1, STRING031 + ".@@@", 2, 0
  363.         FRead 1, INTEGER014, 2
  364.         INTEGER015 = ToInt(INTEGER014)
  365.         FSeek 1, CurConf() * INTEGER015 + 482, 1
  366.         FRead 1, STRING026, 33
  367.         FClose 1
  368.         INTEGER003 = FileInf(STRING026, 4)
  369.         INTEGER003 = INTEGER003 / INTEGER001
  370.         FOpen 1, STRING026, 0, 0
  371.         If (AnsiOn()) Goto LABEL015
  372.         Gosub LABEL017
  373.         Goto LABEL016
  374.         :LABEL015
  375.         Gosub LABEL018
  376.         FClose 1
  377.         :LABEL016
  378.         FClose 1
  379.         Return
  380.         :LABEL017
  381.         PrintLn "@CLS@"
  382.         Newline
  383.         PrintLn "@X0F@CONFNAME@ @X07File Areas...."
  384.         Newline
  385.         PrintLn "@X030 - @X0B New Uploads"
  386.         For INTEGER002 = 1 To INTEGER003
  387.             If (Abort() == 1) INTEGER002 = INTEGER003
  388.             INTEGER001 = INTEGER001 * (INTEGER002 - 1)
  389.             FSeek 1, INTEGER001, 1
  390.             FRead 1, STRING024, 96
  391.             STRING025 = Mid(STRING024, 61, 35)
  392.             PrintLn "@X03" + String(INTEGER002) + " - @X0B" + STRING025
  393.         Next
  394.         STRING037 = "   "
  395.         InputStr "@X0CSelect File Area @X0F(@X08ENTER=Quit@X0F) @X0B", STRING037, 7, 3, "1234567890Nn", 256 + 2 + 8
  396.         If (STRING037 == "0") STRING037 = "U"
  397.         If (STRING037 == "") Goto LABEL032
  398.         PrintLn "@CLS@"
  399.         PROC001(STRING037)
  400.         Return
  401.         :LABEL018
  402.         Newline
  403.         Newline
  404.         INTEGER012 = GetY()
  405.         INTEGER013 = GetX()
  406.         TSTRING028(0) = STRING034
  407.         If (Upper(Left(STRING007, 1)) == "Y") Then
  408.             PrintLn "@X0BOne Moment... @X07"
  409.             PrintLn 
  410.             Print "@X0FLoading Group File Area Data For " + TSTRING003(INTEGER022) + "..."
  411.             INTEGER012 = GetY()
  412.             INTEGER013 = GetX()
  413.             INTEGER020 = ToInt(TSTRING005(INTEGER022, 1))
  414.             INTEGER019 = 1
  415.             For INTEGER016 = 2 To INTEGER020 + 1
  416.                 If (InStr(TSTRING005(INTEGER022, INTEGER016), "-") <> 0) Then
  417.                     INTEGER025 = InStr(TSTRING005(INTEGER022, INTEGER016), "-")
  418.                     INTEGER026 = Len(TSTRING005(INTEGER022, INTEGER016))
  419.                     INTEGER027 = ToInt(Left(TSTRING005(INTEGER022, INTEGER016), INTEGER025 - 1))
  420.                     INTEGER028 = ToInt(Right(TSTRING005(INTEGER022, INTEGER016), INTEGER026 - INTEGER025))
  421.                     For INTEGER023 = INTEGER027 To INTEGER028
  422.                         TINTEGER029(INTEGER019) = INTEGER023
  423.                         Inc INTEGER019
  424.                     Next
  425.                     Continue
  426.                 Endif
  427.                 TINTEGER029(INTEGER019) = ToInt(TSTRING005(INTEGER022, INTEGER016))
  428.                 Inc INTEGER019
  429.             Next
  430.             TINTEGER029(0) = 0
  431.             INTEGER018 = INTEGER019
  432.             INTEGER003 = INTEGER019
  433.             For INTEGER002 = 1 To INTEGER019 - 1
  434.                 AnsiPos INTEGER013, INTEGER012
  435.                 If (Carrier() > 9600) Then
  436.                     Print "@X03[@X0B" + String(INTEGER002) + "@X03]"
  437.                 Endif
  438.                 If (Abort() == 1) INTEGER002 = INTEGER003
  439.                 INTEGER001 = 96 * (TINTEGER029(INTEGER002) - 1)
  440.                 FSeek 1, INTEGER001, 0
  441.                 FRead 1, STRING024, 96
  442.                 TSTRING028(INTEGER002) = Mid(STRING024, 61, 35) + " "
  443.                 TSTRING030(INTEGER002) = Left(STRING024, 30)
  444.                 If (TSTRING028(INTEGER002) == STRING033) Then
  445.                     TSTRING028(INTEGER002) = "                                    @X07"
  446.                     Continue
  447.                 Endif
  448.                 STRING033 = TSTRING028(INTEGER002)
  449.             Next
  450.             Goto LABEL020
  451.         Endif
  452.         PrintLn "@X0FUltiWares(@X0Cc@X0F)1995 @X0AAREAS " + STRING001 + "@X07"
  453.         Newline
  454.         Print "@X0BOne Moment... @X0FLoading File Area Data..."
  455.         INTEGER012 = GetY()
  456.         INTEGER013 = GetX()
  457.         For INTEGER002 = 1 To INTEGER003 + 20
  458.             AnsiPos INTEGER013, INTEGER012
  459.             If (Carrier() > 9600) Then
  460.                 Print "@X03[@X0B" + String(INTEGER002) + "@X03]"
  461.             Endif
  462.             If (Abort() == 1) INTEGER002 = INTEGER003
  463.             INTEGER001 = INTEGER001 * (INTEGER002 - 1)
  464.             FSeek 1, INTEGER001, 1
  465.             FRead 1, STRING024, 96
  466.             TSTRING028(INTEGER002) = Mid(STRING024, 61, 35) + " "
  467.             TSTRING030(INTEGER002) = Left(STRING024, 30)
  468.             If (TSTRING028(INTEGER002) == STRING033) Then
  469.                 TSTRING028(INTEGER002) = "                                    @X07"
  470.                 Goto LABEL019
  471.             Endif
  472.             STRING033 = TSTRING028(INTEGER002)
  473.             :LABEL019
  474.             INTEGER018 = INTEGER002
  475.         Next
  476.         :LABEL020
  477.         If (INTEGER017 <> 1) Goto LABEL025
  478.         PrintLn "@CLS@@X07         " + STRING016 + " ┌──────────────────────────────────────────────────────────┐ @X07"
  479.         PrintLn "@X07         " + STRING016 + " │ " + STRING018 + "          The Ultimate File Area Lister " + STRING001 + "          " + STRING017 + " │ @X07"
  480.         PrintLn "@X07         " + STRING017 + " └──────────────────────────────────────────────────────────┘ @X07"
  481.         PrintLn "@X07         " + STRING016 + " ┌──────────────────────────────────────────────────────────┐ @X07"
  482.         PrintLn "@X07         " + STRING016 + " │ " + STRING019 + "###  " + STRING016 + "│  " + STRING019 + "Area Description                                 " + STRING017 + "│ @X07"
  483.         PrintLn "@X07         " + STRING016 + " │ " + STRING017 + "─────┴────────────────────────────────────────────────── │ @X07"
  484.         PrintLn "@X07         " + STRING016 + " │                                                          " + STRING017 + "│ @X07"
  485.         PrintLn "@X07         " + STRING016 + " │                                                          " + STRING017 + "│ @X07"
  486.         PrintLn "@X07         " + STRING016 + " │                                                          " + STRING017 + "│ @X07"
  487.         PrintLn "@X07         " + STRING016 + " │                                                          " + STRING017 + "│ @X07"
  488.         PrintLn "@X07         " + STRING016 + " │                                                          " + STRING017 + "│ @X07"
  489.         PrintLn "@X07         " + STRING016 + " │                                                          " + STRING017 + "│ @X07"
  490.         PrintLn "@X07         " + STRING016 + " │                                                          " + STRING017 + "│ @X07"
  491.         PrintLn "@X07         " + STRING016 + " │                                                          " + STRING017 + "│ @X07"
  492.         PrintLn "@X07         " + STRING016 + " │                                                          " + STRING017 + "│ @X07"
  493.         PrintLn "@X07         " + STRING016 + " │                                                          " + STRING017 + "│ @X07"
  494.         PrintLn "@X07         " + STRING016 + " │                                                          " + STRING017 + "│ @X07"
  495.         PrintLn "@X07         " + STRING016 + " │                                                          " + STRING017 + "│ @X07"
  496.         PrintLn "@X07         " + STRING017 + " └──────────────────────────────────────────────────────────┘ @X07"
  497.         PrintLn "                                                       @X08UltiWares(@X0Cc@X08)1995"
  498.         INTEGER006 = 13
  499.         INTEGER005 = 7
  500.         INTEGER007 = 0
  501.         While (INTEGER007 < INTEGER003) Do
  502.             For INTEGER007 = 0 To INTEGER003 Step 10
  503.                 For INTEGER002 = INTEGER007 To INTEGER007 + 9
  504.                     INTEGER010 = INTEGER007
  505.                     INTEGER011 = INTEGER007 + 9
  506.                     STRING029 = String(INTEGER002)
  507.                     If (Len(STRING029) == 1) STRING029 = "  " + STRING029
  508.                     If (Len(STRING029) == 2) STRING029 = " " + STRING029
  509.                     If (Left(TSTRING028(INTEGER002), 10) <> "          ") Then
  510.                         AnsiPos INTEGER006, INTEGER005
  511.                         Print STRING009 + STRING029 + " "
  512.                         AnsiPos INTEGER006 + 8, INTEGER005
  513.                         Print STRING010 + " " + Left(TSTRING028(INTEGER002), 44) + " "
  514.                         Goto LABEL021
  515.                     Endif
  516.                     AnsiPos INTEGER006, INTEGER005
  517.                     Print STRING009 + "    "
  518.                     AnsiPos INTEGER006 + 8, INTEGER005
  519.                     Print STRING010 + Space(46)
  520.                     :LABEL021
  521.                     INTEGER005 = INTEGER005 + 1
  522.                 Next
  523.                 AnsiPos 1, 22
  524.                 STRING037 = ""
  525.                 Print STRING020 + STRING013
  526.                 :LABEL022
  527.                 INTEGER008 = GetX()
  528.                 STRING037 = Upper(Inkey())
  529.                 If (STRING037 == "") Goto LABEL022
  530.                 If (((STRING037 == "UP") || (STRING037 == "DOWN")) || (STRING037 == " ")) Gosub LABEL023
  531.                 If (InStr("1234567890", STRING037) <> 0) Then
  532.                     Print STRING037
  533.                     While (STRING038 <> Chr(13)) Do
  534.                         STRING038 = Inkey()
  535.                         STRING037 = STRING037 + STRING038
  536.                         Print STRING038
  537.                         If (STRING037 == "0") STRING037 = "U"
  538.                     EndWhile
  539.                     PROC001(STRING037)
  540.                 Endif
  541.                 If ((STRING037 == "Q") || (STRING037 == Chr(27))) Goto LABEL032
  542.                 If ((STRING037 == Chr(13)) || (STRING037 == "PGDN")) Then
  543.                     INTEGER005 = 7
  544.                     Continue
  545.                 Endif
  546.                 If ((STRING037 == "PGUP") || (STRING037 == "B")) Then
  547.                     INTEGER007 = INTEGER007 - 21
  548.                     If (INTEGER007 <= 0) INTEGER007 = -10
  549.                     INTEGER005 = 7
  550.                     STRING037 = ""
  551.                     Continue
  552.                 Endif
  553.                 Goto LABEL022
  554.             Next
  555.         EndWhile
  556.         Return
  557.         :LABEL023
  558.         INTEGER036 = INTEGER006
  559.         INTEGER037 = INTEGER005 - 10
  560.         INTEGER038 = INTEGER010
  561.         STRING046 = String(INTEGER038)
  562.         If (Len(STRING046) == 1) STRING046 = "  " + STRING046
  563.         If (Len(STRING046) == 2) STRING046 = " " + STRING046
  564.         AnsiPos INTEGER036, INTEGER037
  565.         Print STRING011 + STRING046 + " "
  566.         AnsiPos INTEGER036 + 8, INTEGER037
  567.         Print STRING011 + " " + TSTRING028(INTEGER038) + Space(9)
  568.         :LABEL024
  569.         STRING046 = String(INTEGER038)
  570.         If (Len(STRING046) == 1) STRING046 = "  " + STRING046
  571.         If (Len(STRING046) == 2) STRING046 = " " + STRING046
  572.         STRING038 = Inkey()
  573.         If (STRING038 == Chr(13)) Then
  574.             If (INTEGER038 == 0) STRING046 = "U"
  575.             PROC001(STRING046)
  576.         Endif
  577.         If (STRING038 == Chr(27)) Then
  578.             AnsiPos INTEGER036, INTEGER037
  579.             Print STRING009 + STRING046 + " "
  580.             AnsiPos INTEGER036 + 8, INTEGER037
  581.             Print STRING010 + " " + TSTRING028(INTEGER038) + Space(9)
  582.             AnsiPos INTEGER008, 22
  583.             Print STRING013
  584.             Return
  585.         Endif
  586.         If ((STRING038 == "DOWN") || (STRING038 == " ")) Then
  587.             AnsiPos INTEGER036, INTEGER037
  588.             Print STRING009 + STRING046 + " "
  589.             AnsiPos INTEGER036 + 8, INTEGER037
  590.             Print STRING010 + " " + TSTRING028(INTEGER038) + Space(9)
  591.             If (INTEGER038 == INTEGER011) Then
  592.                 AnsiPos INTEGER036, INTEGER037
  593.                 Print STRING009 + STRING046 + " "
  594.                 AnsiPos INTEGER036 + 8, INTEGER037
  595.                 Print STRING010 + " " + TSTRING028(INTEGER038) + Space(9)
  596.                 INTEGER038 = INTEGER010
  597.                 INTEGER037 = INTEGER037 - 9
  598.                 STRING046 = String(INTEGER038)
  599.                 If (Len(STRING046) == 1) STRING046 = "  " + STRING046
  600.                 If (Len(STRING046) == 2) STRING046 = " " + STRING046
  601.                 AnsiPos INTEGER036, INTEGER037
  602.                 Print STRING011 + STRING046 + " "
  603.                 AnsiPos INTEGER036 + 8, INTEGER037
  604.                 Print STRING011 + " " + TSTRING028(INTEGER038) + Space(9)
  605.                 Goto LABEL024
  606.             Endif
  607.             INTEGER037 = INTEGER037 + 1
  608.             AnsiPos INTEGER036, INTEGER037
  609.             INTEGER038 = INTEGER038 + 1
  610.             STRING046 = String(INTEGER038)
  611.             If (Len(STRING046) == 1) STRING046 = "  " + STRING046
  612.             If (Len(STRING046) == 2) STRING046 = " " + STRING046
  613.             Print STRING011 + STRING046 + " "
  614.             AnsiPos INTEGER036 + 8, INTEGER037
  615.             Print STRING011 + " " + TSTRING028(INTEGER038) + Space(9)
  616.         Endif
  617.         Goto LABEL024
  618.         :LABEL025
  619.         Print "@X07@CLS@"
  620.         PrintLn STRING016 + "┌─────────────────────────────────────────────────────────────────────────────┐@X07"
  621.         PrintLn STRING016 + "│ " + STRING018 + "              ■■■  AREAS " + STRING001 + " PCBoard File Area Lister  ■■■              " + STRING017 + " │@X07"
  622.         PrintLn STRING017 + "└─────────────────────────────────────────────────────────────────────────────" + STRING017 + "┘@X07"
  623.         PrintLn STRING016 + "┌─────────────────────────────────────────────────────────────────────────────┐@X07"
  624.         PrintLn STRING016 + "│ " + STRING019 + "###  Area Description                 " + STRING019 + "###  Area Description                 " + STRING017 + "│@X07"
  625.         PrintLn STRING016 + "│ " + STRING017 + "─────────────────────────────────────────────────────────────────────────── │@X07"
  626.         PrintLn STRING016 + "│                                                                             " + STRING017 + "│@X07"
  627.         PrintLn STRING016 + "│                                                                             " + STRING017 + "│@X07"
  628.         PrintLn STRING016 + "│                                                                             " + STRING017 + "│@X07"
  629.         PrintLn STRING016 + "│                                                                             " + STRING017 + "│@X07"
  630.         PrintLn STRING016 + "│                                                                             " + STRING017 + "│@X07"
  631.         PrintLn STRING016 + "│                                                                             " + STRING017 + "│@X07"
  632.         PrintLn STRING016 + "│                                                                             " + STRING017 + "│@X07"
  633.         PrintLn STRING016 + "│                                                                             " + STRING017 + "│@X07"
  634.         PrintLn STRING016 + "│                                                                             " + STRING017 + "│@X07"
  635.         PrintLn STRING016 + "│                                                                             " + STRING017 + "│@X07"
  636.         PrintLn STRING017 + "└─────────────────────────────────────────────────────────────────────────────" + STRING017 + "┘@X07"
  637.         PrintLn STRING016 + "┌─────────────────────────────────────────────────────────────────────────────┐@X07"
  638.         STRING032 = ""
  639.         If (Len(INTEGER018) == 1) Then
  640.             STRING032 = "  "
  641.             Goto LABEL026
  642.         Endif
  643.         If (Len(INTEGER018) == 2) Then
  644.             STRING032 = " "
  645.         Endif
  646.         :LABEL026
  647.         PrintLn STRING016 + "│ " + STRING009 + " Conference: " + STRING010 + "@CONFNAME:60@ " + STRING017 + "  │@X07"
  648.         PrintLn STRING016 + "│ " + STRING009 + " File Group: " + STRING010 + STRING008 + "   " + STRING009 + " Area Range: " + STRING010 + "[0-" + String(INTEGER018 - 1) + STRING032 + "] " + STRING017 + "  │@X07"
  649.         PrintLn STRING017 + "└─────────────────────────────────────────────────────────────────────────────" + STRING017 + "┘@X07"
  650.         INTEGER006 = 3
  651.         INTEGER005 = 7
  652.         INTEGER007 = 0
  653.         While (INTEGER007 < INTEGER003) Do
  654.             For INTEGER007 = 0 To INTEGER003 Step 20
  655.                 For INTEGER002 = INTEGER007 To INTEGER007 + 19
  656.                     INTEGER010 = INTEGER007
  657.                     INTEGER011 = INTEGER007 + 19
  658.                     STRING029 = String(INTEGER002)
  659.                     If (Len(STRING029) == 1) STRING029 = "  " + STRING029
  660.                     If (Len(STRING029) == 2) STRING029 = " " + STRING029
  661.                     If (INTEGER005 == 17) Then
  662.                         INTEGER005 = 7
  663.                         INTEGER006 = 41
  664.                     Endif
  665.                     If (Left(TSTRING028(INTEGER002), 10) <> "          ") Then
  666.                         AnsiPos INTEGER006, INTEGER005
  667.                         Print STRING009 + STRING029
  668.                         AnsiPos INTEGER006 + 3, INTEGER005
  669.                         Print STRING010 + "  " + Left(TSTRING028(INTEGER002), 30) + " "
  670.                         Goto LABEL027
  671.                     Endif
  672.                     AnsiPos INTEGER006, INTEGER005
  673.                     Print STRING010 + Space(36)
  674.                     :LABEL027
  675.                     INTEGER005 = INTEGER005 + 1
  676.                 Next
  677.                 INTEGER006 = 3
  678.                 :LABEL028
  679.                 AnsiPos 1, 22
  680.                 STRING037 = ""
  681.                 Print STRING020 + STRING013
  682.                 :LABEL029
  683.                 INTEGER009 = GetY()
  684.                 INTEGER008 = GetX()
  685.                 STRING037 = Upper(Inkey())
  686.                 If (STRING037 == "D") Then
  687.                     Gosub LABEL036
  688.                     STRING037 = ""
  689.                     Goto LABEL028
  690.                 Endif
  691.                 If ((STRING037 == "Q") && (Upper(Left(STRING007, 1)) == "Y")) Then
  692.                     Goto LABEL006
  693.                 Endif
  694.                 If (STRING037 == "") Goto LABEL029
  695.                 If (((STRING037 == "UP") || (STRING037 == "DOWN")) || (STRING037 == " ")) Gosub LABEL030
  696.                 If (InStr("1234567890", STRING037) <> 0) Then
  697.                     Print STRING037
  698.                     While (STRING038 <> Chr(13)) Do
  699.                         STRING038 = Inkey()
  700.                         STRING037 = STRING037 + STRING038
  701.                         Print STRING038
  702.                         If (STRING037 == "0") STRING037 = "U"
  703.                     EndWhile
  704.                     PROC001(STRING037)
  705.                 Endif
  706.                 If ((STRING037 == "Q") || (STRING037 == Chr(27))) Goto LABEL032
  707.                 If ((STRING037 == Chr(13)) || (STRING037 == "PGDN")) Then
  708.                     INTEGER005 = 7
  709.                     Continue
  710.                 Endif
  711.                 If ((STRING037 == "PGUP") || (STRING037 == "B")) Then
  712.                     INTEGER007 = INTEGER007 - 40
  713.                     If (INTEGER007 < 0) Then
  714.                         INTEGER007 = -20
  715.                     Endif
  716.                     INTEGER005 = 7
  717.                     STRING037 = ""
  718.                     Continue
  719.                 Endif
  720.                 Goto LABEL029
  721.             Next
  722.         EndWhile
  723.         If (Upper(Left(STRING007, 1)) == "Y") Then
  724.             Goto LABEL006
  725.             Goto LABEL030
  726.         Endif
  727.         Return
  728.         :LABEL030
  729.         AnsiPos 1, 22
  730.         Print "" + Space(79)
  731.         AnsiPos 1, 22
  732.         Print STRING021 + STRING013
  733.         INTEGER039 = INTEGER006
  734.         INTEGER040 = 7
  735.         INTEGER041 = INTEGER010
  736.         STRING047 = String(INTEGER041)
  737.         If (Len(STRING047) == 1) STRING047 = "  " + STRING047
  738.         If (Len(STRING047) == 2) STRING047 = " " + STRING047
  739.         AnsiPos INTEGER039, INTEGER040
  740.         Print STRING011 + STRING047 + " "
  741.         AnsiPos INTEGER039 + 3, INTEGER040
  742.         Print STRING011 + "  " + Left(TSTRING028(INTEGER041), 30) + " "
  743.         :LABEL031
  744.         STRING047 = String(INTEGER041)
  745.         If (Len(STRING047) == 1) STRING047 = "  " + STRING047
  746.         If (Len(STRING047) == 2) STRING047 = " " + STRING047
  747.         STRING038 = Inkey()
  748.         If (STRING038 == Chr(13)) Then
  749.             If (INTEGER041 == 0) STRING047 = "U"
  750.             PROC001(STRING047)
  751.         Endif
  752.         If (STRING038 == Chr(27)) Then
  753.             AnsiPos INTEGER039, INTEGER040
  754.             Print STRING009 + STRING047
  755.             AnsiPos INTEGER039 + 3, INTEGER040
  756.             Print STRING010 + "  " + Left(TSTRING028(INTEGER041), 30) + " "
  757.             AnsiPos INTEGER008, INTEGER009
  758.             Print STRING013
  759.             AnsiPos 1, 22
  760.             Print "" + Space(79)
  761.             AnsiPos 1, 22
  762.             Print STRING020 + STRING013
  763.             Return
  764.         Endif
  765.         If ((STRING038 == "DOWN") || (STRING038 == " ")) Then
  766.             If (Left(TSTRING028(INTEGER041 + 1), 10) == Space(10)) Then
  767.                 AnsiPos INTEGER039, INTEGER040
  768.                 Print STRING009 + STRING047
  769.                 AnsiPos INTEGER039 + 3, INTEGER040
  770.                 Print STRING010 + "  " + Left(TSTRING028(INTEGER041), 30) + " "
  771.                 INTEGER041 = INTEGER010
  772.                 INTEGER040 = 7
  773.                 INTEGER039 = 3
  774.                 STRING047 = String(INTEGER041)
  775.                 If (Len(STRING047) == 1) STRING047 = "  " + STRING047
  776.                 If (Len(STRING047) == 2) STRING047 = " " + STRING047
  777.                 AnsiPos INTEGER039, INTEGER040
  778.                 Print STRING011 + STRING047 + " "
  779.                 AnsiPos INTEGER039 + 3, INTEGER040
  780.                 Print STRING011 + "  " + Left(TSTRING028(INTEGER041), 30) + " "
  781.                 Goto LABEL031
  782.             Endif
  783.             AnsiPos INTEGER039, INTEGER040
  784.             Print STRING009 + STRING047
  785.             AnsiPos INTEGER039 + 3, INTEGER040
  786.             Print STRING010 + "  " + Left(TSTRING028(INTEGER041), 30) + " "
  787.             If ((INTEGER040 == 16) && (INTEGER039 <> 41)) Then
  788.                 INTEGER040 = 6
  789.                 INTEGER039 = 41
  790.             Endif
  791.             If (INTEGER041 == INTEGER011) Then
  792.                 AnsiPos INTEGER039, INTEGER040
  793.                 Print STRING009 + STRING047
  794.                 AnsiPos INTEGER039 + 3, INTEGER040
  795.                 Print STRING010 + "  " + Left(TSTRING028(INTEGER041), 30) + " "
  796.                 INTEGER041 = INTEGER010
  797.                 INTEGER040 = INTEGER040 - 9
  798.                 INTEGER039 = 3
  799.                 STRING047 = String(INTEGER041)
  800.                 If (Len(STRING047) == 1) STRING047 = "  " + STRING047
  801.                 If (Len(STRING047) == 2) STRING047 = " " + STRING047
  802.                 AnsiPos INTEGER039, INTEGER040
  803.                 Print STRING011 + STRING047 + " "
  804.                 AnsiPos INTEGER039 + 3, INTEGER040
  805.                 Print STRING011 + "  " + Left(TSTRING028(INTEGER041), 30) + " "
  806.                 Goto LABEL031
  807.             Endif
  808.             INTEGER040 = INTEGER040 + 1
  809.             AnsiPos INTEGER039, INTEGER040
  810.             INTEGER041 = INTEGER041 + 1
  811.             STRING047 = String(INTEGER041)
  812.             If (Len(STRING047) == 1) STRING047 = "  " + STRING047
  813.             If (Len(STRING047) == 2) STRING047 = " " + STRING047
  814.             Print STRING011 + STRING047 + " "
  815.             AnsiPos INTEGER039 + 3, INTEGER040
  816.             Print STRING011 + "  " + Left(TSTRING028(INTEGER041), 30) + " "
  817.         Endif
  818.         Goto LABEL031
  819.         :LABEL032
  820.         AnsiPos 1, 23
  821.         Print "@X07" + Chr(13)
  822.         End
  823.         PrintLn "@X07@CLS@@X1F The Ultimate File Area Selector " + STRING001 + "                     UltiWares(@X1Cc@X1F)1995 @X0F"
  824.         PrintLn 
  825.         End
  826.     Endif
  827.     KbdStuff "F " + STRING027 + Chr(13)
  828.     End
  829.  
  830. ;------------------------------------------------------------------------------
  831.  
  832.     Procedure PROC001(String STRING048)
  833.  
  834.     If (Upper(Left(STRING007, 1)) == "Y") Then
  835.         STRING048 = TINTEGER029(STRING048)
  836.     Endif
  837.     If (STRING048 == "0") STRING048 = "U"
  838.     If ((STRING048 == "U") && (STRING041 == "N")) Then
  839.         Cls
  840.         PrintLn 
  841.         PrintLn "@X0AThe Sysop Has Marked The @X0FNew Uploads @X0AArea As @X0FPrivate!@X07"
  842.         PrintLn 
  843.         PrintLn 
  844.         Wait
  845.         KbdStuff "F "
  846.         End
  847.     Endif
  848.     If (BOOLEAN001 <> 1) Then
  849.         KbdStuff "F " + STRING048
  850.     Else
  851.         KbdStuff STRING048 + Chr(13)
  852.     Endif
  853.     PrintLn "@X07@CLS@@X1F The Ultimate File Area Selector " + STRING001 + "                     UltiWares(@X1Cc@X1F)1995 @X0F"
  854.     PrintLn 
  855.     End
  856.  
  857.     EndProc
  858.  
  859.     :LABEL033
  860.     If (Exist(PPEPath() + "AREAS.KEY")) Goto LABEL034
  861.     PrintLn 
  862.     PrintLn 
  863.     PrintLn "@X0AThis COPY of @X0FAREAS @X0Ais @X0CUNREGISTERED!@X07"
  864.     PrintLn 
  865.     Delay 10
  866.     Wait
  867.     Return
  868.     :LABEL034
  869.     GetAltUser 1
  870.     STRING051 = U_Name()
  871.     FReAltUser
  872.     Tokenize STRING051
  873.     STRING053 = GetToken()
  874.     STRING054 = GetToken()
  875.     For INTEGER044 = 1 To Len(STRING053)
  876.         INTEGER042 = INTEGER042 + Asc(Mid(STRING053, INTEGER044, 1))
  877.     Next
  878.     For INTEGER044 = 1 To Len(STRING054)
  879.         INTEGER043 = INTEGER043 + Asc(Mid(STRING054, INTEGER044, 1))
  880.     Next
  881.     INTEGER042 = INTEGER042 + (INTEGER043 / 4) * 56
  882.     TSTRING055(1) = String(INTEGER042)
  883.     INTEGER044 = Len(TSTRING055(1))
  884.     TSTRING055(2) = Chr(ToInt(Left(TSTRING055(1), 2)))
  885.     TSTRING055(3) = Right(TSTRING055(1), INTEGER044 - 2) + TSTRING055(2) + Left(TSTRING055(1), 2)
  886.     FOpen 1, PPEPath() + "AREAS.KEY", 0, 0
  887.     FRead 1, STRING049, 35
  888.     FRead 1, STRING050, 30
  889.     FSeek 1, 162, 0
  890.     FRead 1, STRING052, Len(TSTRING055(3))
  891.     FClose 1
  892.     If (TSTRING055(3) == STRING052) Then
  893.         Goto LABEL035
  894.     Endif
  895.     PrintLn 
  896.     PrintLn 
  897.     PrintLn "@X0AThis COPY of @X0FAREAS @X0Ais @X0CUNREGISTERED!@X07"
  898.     PrintLn 
  899.     Delay 10
  900.     Wait
  901.     :LABEL035
  902.     Return
  903.     :LABEL036
  904.     STRING037 = " "
  905.     AnsiPos 1, 23
  906.     InputStr "@X0ADownload @X0FFilelist @X0AFor What Area @X03[@X0BA@X03]ll, @X0B### @X07", STRING037, 7, 3, "1234567890AaQqNn", 2 + 8
  907.     If ((STRING037 == "Q") || (STRING037 == "N")) Return
  908.     If (((ToInt(STRING037) > 0) && (ToInt(STRING037) < INTEGER018 + 1)) || (STRING037 == "A")) Then
  909.         STRING042 = ReadLine(PCBDat(), 179) + "FLIST" + String(INTEGER021) + "." + STRING037
  910.         STRING043 = "\FLIST" + String(INTEGER021) + "." + STRING037
  911.         STRING044 = ReadLine(PCBDat(), 179) + "FLIST" + String(PcbNode()) + ".ZIP"
  912.         STRING045 = "\FLIST" + String(PcbNode()) + ".ZIP"
  913.         Delete ReadLine(PCBDat(), 179) + "FLIST*.*"
  914.         SaveScrn
  915.         If (AnsiOn()) Goto LABEL037
  916.         Forward 6
  917.         Print "@X8FWorking! @X03Please Wait...@X07"
  918.         :LABEL037
  919.         FCreate 4, STRING042, 1, 0
  920.         FPutLn 4, "──────────────────────────────────────────────────────────────────────────────"
  921.         FPutLn 4, "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒"
  922.         FPutLn 4, "──────────────────────────────────────────────────────────────────────────────"
  923.         FPutLn 4, " ▄█████▄ ██████▄ ▄██████ ▄█████▄ ▄█████▄"
  924.         FPutLn 4, " ██▄▄▄██ ██   ██ ██▄▄▄▄  ██▄▄▄██ ██▄▄▄▄          PCBoard Filelists Using"
  925.         FPutLn 4, " ██▀▀▀██ ██████  ██▀▀▀▀  ██▀▀▀██  ▀▀▀▀██"
  926.         FPutLn 4, " ██   ██ ██  ▀██ ▀██████ ██   ██ ▀█████▀ PPE"
  927.         FPutLn 4, "──────────────────────────────────────────────────────────────────────────────"
  928.         FPutLn 4, "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒"
  929.         FPutLn 4, "──────────────────────────────────────────────────────────────────────────────"
  930.         FPutLn 4, "                                                              UltiWares(c)1995"
  931.         FPutLn 4, ""
  932.         FPutLn 4, "Filelist BBS     : " + PCBMac("@BOARDNAME@")
  933.         FPutLn 4, "Generated For    : " + Mixed(PCBMac("@USER@"))
  934.         FPutLn 4
  935.         FPutLn 4, "List Compiled On : " + STRING039
  936.         FPutLn 4
  937.         FPutLn 4, "Conference       : (" + String(CurConf()) + ")" + PCBMac("@CONFNAME@")
  938.         If (Upper(Left(STRING007, 1)) == "Y") Then
  939.             FPutLn 4, "FileGroup        : " + STRING008
  940.         Endif
  941.         FPutLn 4, ""
  942.         FClose 4
  943.         If (STRING037 == "A") Then
  944.             If (AnsiOn()) Goto LABEL038
  945.             Goto LABEL039
  946.             :LABEL038
  947.             INTEGER019 = 8
  948.             AnsiPos 8, INTEGER019
  949.             Print "@X31 @X3B┌───────────────────────────────────────────────────────────────┐ @X07"
  950.             AnsiPos 8, INTEGER019 + 1
  951.             Print "@X31 @X3B│ @X3F AREAS v1.0 PCBoard Filelist Creation Utility ────────────── @X3F @X30│ @X07"
  952.             AnsiPos 8, INTEGER019 + 2
  953.             Print "@X31 @X3B│ @X30───────────────────────────────────────────────────────────── │ @X07"
  954.             AnsiPos 8, INTEGER019 + 3
  955.             Print "@X31 @X3B│ @X30                                                              @X30│ @X07"
  956.             AnsiPos 8, INTEGER019 + 4
  957.             Print "@X31 @X3B│ @X30                                                              @X30│ @X07"
  958.             AnsiPos 8, INTEGER019 + 5
  959.             Print "@X31 @X3B│                                                               @X30│ @X07"
  960.             AnsiPos 8, INTEGER019 + 6
  961.             Print "@X31 @X3B│ @X30┌────────────────────────────┬──────────────────────────────┐ │ @X07"
  962.             AnsiPos 8, INTEGER019 + 7
  963.             Print "@X31 @X3B│ @X300%                          50%                           100%│ @X07"
  964.             AnsiPos 8, INTEGER019 + 8
  965.             Print "@X31 @X30└───────────────────────────────────────────────────────────────┘ @X07"
  966.             AnsiPos 11, INTEGER019 + 5
  967.             INTEGER019 = INTEGER018 / 10
  968.             INTEGER023 = 0
  969.             :LABEL039
  970.             For INTEGER016 = 1 To INTEGER018 - 1
  971.                 Inc INTEGER023
  972.                 If ((INTEGER023 == INTEGER019) && AnsiOn()) Then
  973.                     INTEGER023 = 0
  974.                     INTEGER024 = INTEGER024 + 5
  975.                     Print "@X3F▄▄▄▄▄"
  976.                 Endif
  977.                 FAppend 4, STRING042, 1, 0
  978.                 FPutLn 4, ""
  979.                 FPutLn 4, ""
  980.                 FPutLn 4, ""
  981.                 STRING024 = StripStr(TSTRING028(INTEGER016), "  ")
  982.                 If (Right(STRING024, 1) <> " ") STRING024 = STRING024 + " "
  983.                 STRING024 = Left(STRING024 + "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒", 35)
  984.                 FPutLn 4, "┌─────────────────────────────────────────────────────────────────────────────┐"
  985.                 FPutLn 4, "│ ▒▒ " + STRING024 + "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ │"
  986.                 FPutLn 4, "└─────────────────────────────────────────────────────────────────────────────┘"
  987.                 FPutLn 4, ""
  988.                 FPutLn 4, ""
  989.                 FClose 4
  990.                 Append TSTRING030(INTEGER016), STRING042
  991.                 FAppend 4, STRING042, 1, 0
  992.                 FPutLn 4
  993.                 FPutLn 4, "                              --- End Area ---"
  994.                 FClose 5
  995.             Next
  996.             If (AnsiOn()) Then
  997.                 INTEGER024 = 61 - INTEGER024
  998.                 For INTEGER016 = 1 To INTEGER024
  999.                     Print "▄"
  1000.                 Next
  1001.                 AnsiPos 1, 23
  1002.                 Print "@X07"
  1003.             Endif
  1004.             Goto LABEL040
  1005.         Endif
  1006.         FAppend 4, STRING042, 1, 0
  1007.         FPutLn 4, ""
  1008.         FPutLn 4, ""
  1009.         FPutLn 4, ""
  1010.         STRING024 = StripStr(TSTRING028(ToInt(STRING037)), " ")
  1011.         If (Right(STRING024, 1) <> " ") STRING024 = STRING024 + " "
  1012.         STRING024 = Left(STRING024 + "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒", 35)
  1013.         FPutLn 4, "┌─────────────────────────────────────────────────────────────────────────────┐"
  1014.         FPutLn 4, "│ ▒▒ " + STRING024 + "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ │"
  1015.         FPutLn 4, "└─────────────────────────────────────────────────────────────────────────────┘"
  1016.         FPutLn 4, ""
  1017.         FPutLn 4, ""
  1018.         FClose 4
  1019.         Append TSTRING030(INTEGER016), STRING042
  1020.         FAppend 4, STRING042, 1, 0
  1021.         FPutLn 4
  1022.         FPutLn 4, "                              --- End Area ---"
  1023.         FClose 5
  1024.         :LABEL040
  1025.         FPutLn 4, ""
  1026.         FPutLn 4, ""
  1027.         FPutLn 4, "──────────────────────────────────────────────────────────────────────────────"
  1028.         FPutLn 4, "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒"
  1029.         FPutLn 4, "──────────────────────────────────────────────────────────────────────────────"
  1030.         FPutLn 4, "                                                              UltiWares(c)1995"
  1031.         FClose 4
  1032.         AnsiPos 11, 12
  1033.         Print "@X3FNow Archiving Your Filelist! @XBEPlease Wait...@X3E@X07"
  1034.         Shell 0, INTEGER016, STRING036, " -a " + STRING044 + " " + STRING042
  1035.         Copy STRING044, STRING040 + STRING045
  1036.         Delete STRING042
  1037.         Delete STRING044
  1038.         If (AnsiOn()) Then
  1039.             INTEGER019 = 7
  1040.             AnsiPos 12, INTEGER019
  1041.             Print "@X0B┌─┤@X4F Download Filelist @X0B├──────────────────────────────────┐"
  1042.             AnsiPos 12, INTEGER019 + 1
  1043.             Print "@X0B│                                                        │"
  1044.             AnsiPos 12, INTEGER019 + 2
  1045.             Print "@X0B│                                                        │"
  1046.             AnsiPos 12, INTEGER019 + 3
  1047.             Print "@X0B│                                                        │"
  1048.             AnsiPos 12, INTEGER019 + 4
  1049.             Print "@X0B│                                                        │"
  1050.             AnsiPos 12, INTEGER019 + 5
  1051.             Print "@X0B│                                                        │"
  1052.             AnsiPos 12, INTEGER019 + 6
  1053.             Print "@X0B│                                                        │"
  1054.             AnsiPos 12, INTEGER019 + 7
  1055.             Print "@X0B│                                                        │"
  1056.             AnsiPos 12, INTEGER019 + 8
  1057.             Print "@X0B│                                                        │"
  1058.             AnsiPos 12, INTEGER019 + 9
  1059.             Print "@X0B│                                                        │"
  1060.             AnsiPos 12, INTEGER019 + 10
  1061.             Print "@X0B│                                                        │"
  1062.             AnsiPos 12, INTEGER019 + 11
  1063.             Print "@X0B│                                                        │"
  1064.             AnsiPos 12, INTEGER019 + 12
  1065.             Print "@X0B└────────────────────────────────────────────────────────┘@X07"
  1066.         Endif
  1067.         If (AnsiOn()) Then
  1068.             AnsiPos 14, INTEGER019 + 2
  1069.             Goto LABEL041
  1070.         Endif
  1071.         PrintLn 
  1072.         PrintLn 
  1073.         PrintLn 
  1074.         :LABEL041
  1075.         Print "@X0AYour @X0FFilelist @X0AIs Ready For Download"
  1076.         STRING037 = "Y"
  1077.         If (AnsiOn()) Then
  1078.             AnsiPos 14, INTEGER019 + 4
  1079.             Goto LABEL042
  1080.         Endif
  1081.         PrintLn 
  1082.         PrintLn 
  1083.         :LABEL042
  1084.         InputStr "@X0BDownload It Now ", STRING037, 7, 1, "YyNn", 2 + 8 + 256
  1085.         If (STRING037 == "Y") Then
  1086.             Cls
  1087.             PrintLn 
  1088.             Download STRING040 + STRING045
  1089.             Goto LABEL045
  1090.         Endif
  1091.         If (AnsiOn()) Then
  1092.             AnsiPos 14, INTEGER019 + 5
  1093.         Endif
  1094.         Flag STRING040 + STRING045
  1095.         If (AnsiOn()) Then
  1096.             AnsiPos 14, INTEGER019 + 6
  1097.             Goto LABEL043
  1098.         Endif
  1099.         PrintLn 
  1100.         PrintLn 
  1101.         :LABEL043
  1102.         PrintLn "@X0AYour @X0FFilelist @X0AHas Been Held For Later @X0FDownload!@X07"
  1103.         If (AnsiOn()) Then
  1104.             AnsiPos 14, INTEGER019 + 8
  1105.             Goto LABEL044
  1106.         Endif
  1107.         PrintLn 
  1108.         :LABEL044
  1109.         Wait
  1110.         :LABEL045
  1111.         RestScrn
  1112.     Endif
  1113.     AnsiPos 1, 23
  1114.     Print Space(79)
  1115.     Return
  1116.     :LABEL046
  1117.     Redim TSTRING056, 12
  1118.     Redim TSTRING057, 7
  1119.     TSTRING056(1) = "January"
  1120.     TSTRING056(2) = "February"
  1121.     TSTRING056(3) = "March"
  1122.     TSTRING056(4) = "April"
  1123.     TSTRING056(5) = "May"
  1124.     TSTRING056(6) = "June"
  1125.     TSTRING056(7) = "July"
  1126.     TSTRING056(8) = "August"
  1127.     TSTRING056(9) = "September"
  1128.     TSTRING056(10) = "October"
  1129.     TSTRING056(11) = "November"
  1130.     TSTRING056(12) = "December"
  1131.     TSTRING057(0) = "Sunday"
  1132.     TSTRING057(1) = "Monday"
  1133.     TSTRING057(2) = "Tuesday"
  1134.     TSTRING057(3) = "Wednesday"
  1135.     TSTRING057(4) = "Thursday"
  1136.     TSTRING057(5) = "Friday"
  1137.     TSTRING057(6) = "Saturday"
  1138.     INTEGER045 = Year(Date())
  1139.     INTEGER046 = Day(Date())
  1140.     INTEGER047 = Month(Date())
  1141.     INTEGER048 = Dow(Date())
  1142.     STRING039 = TSTRING057(INTEGER048) + " " + TSTRING056(INTEGER047) + " " + String(INTEGER046) + ", " + String(INTEGER045)
  1143.     Redim TSTRING056, 1
  1144.     Redim TSTRING057, 1
  1145.     Return
  1146.  
  1147. ;------------------------------------------------------------------------------
  1148. ;
  1149. ; Usage report (before postprocessing)
  1150. ;
  1151. ; ■ Statements used :
  1152. ;
  1153. ;    6       End
  1154. ;    5       Cls
  1155. ;    6       Wait
  1156. ;    173     Goto 
  1157. ;    318     Let 
  1158. ;    83      Print 
  1159. ;    101     PrintLn 
  1160. ;    145     If 
  1161. ;    2       DispFile 
  1162. ;    1       FCreate 
  1163. ;    6       FOpen 
  1164. ;    4       FAppend 
  1165. ;    13      FClose 
  1166. ;    4       FGet 
  1167. ;    46      FPutLn 
  1168. ;    1       GetUser
  1169. ;    3       Delete 
  1170. ;    5       InputStr 
  1171. ;    7       Gosub 
  1172. ;    11      Return
  1173. ;    2       Delay 
  1174. ;    5       Inc 
  1175. ;    5       Newline
  1176. ;    3       Tokenize 
  1177. ;    1       Shell 
  1178. ;    4       KbdStuff 
  1179. ;    78      AnsiPos 
  1180. ;    1       Forward 
  1181. ;    1       SaveScrn
  1182. ;    1       RestScrn
  1183. ;    5       FSeek 
  1184. ;    8       FRead 
  1185. ;    13      Redim 
  1186. ;    2       Append 
  1187. ;    1       Copy 
  1188. ;    1       Flag 
  1189. ;    1       Download 
  1190. ;    1       GetAltUser 
  1191. ;    1       FReAltUser
  1192. ;    1       EndProc
  1193. ;
  1194. ;
  1195. ; ■ Functions used :
  1196. ;
  1197. ;    2       -
  1198. ;    5       *
  1199. ;    3       /
  1200. ;    499     +
  1201. ;    20      -
  1202. ;    104     ==
  1203. ;    13      <>
  1204. ;    24      <
  1205. ;    20      <=
  1206. ;    10      >
  1207. ;    36      >=
  1208. ;    98      !
  1209. ;    44      &&
  1210. ;    38      ||
  1211. ;    31      Len(
  1212. ;    10      Upper()
  1213. ;    5       Mid()
  1214. ;    44      Left()
  1215. ;    6       Right()
  1216. ;    21      Space()
  1217. ;    2       Ferr()
  1218. ;    14      Chr()
  1219. ;    2       Asc()
  1220. ;    5       InStr()
  1221. ;    3       Abort()
  1222. ;    4       Date()
  1223. ;    1       U_Name()
  1224. ;    1       Year()
  1225. ;    1       Month()
  1226. ;    1       Day()
  1227. ;    1       Dow()
  1228. ;    1       Strip()
  1229. ;    6       Inkey()
  1230. ;    31      String()
  1231. ;    9       CurConf()
  1232. ;    4       PCBDat()
  1233. ;    11      PPEPath()
  1234. ;    2       PcbNode()
  1235. ;    4       ReadLine()
  1236. ;    4       GetToken()
  1237. ;    6       Exist()
  1238. ;    2       Carrier()
  1239. ;    1       TokenStr()
  1240. ;    12      AnsiOn()
  1241. ;    5       GetX()
  1242. ;    4       GetY()
  1243. ;    1       FileInf()
  1244. ;    3       TokCount()
  1245. ;    2       StripStr()
  1246. ;    16      ToInt()
  1247. ;    1       Mixed()
  1248. ;    5       PCBMac()
  1249. ;
  1250. ;------------------------------------------------------------------------------
  1251. ;
  1252. ; Analysis flags : RSfd
  1253. ;
  1254. ; R - Read user ■ 5
  1255. ;     User records are read, this may signify that someone wants to get
  1256. ;     various informations about a user (for example his password), but
  1257. ;     this may also be normal for a program accessing user records (for
  1258. ;     example a User Editor)
  1259. ;     ■ Search for : GETALTUSER
  1260. ;
  1261. ; S - Shell to DOS ■ 5
  1262. ;     This may be normal if the PPE need to execute an external command,
  1263. ;     but may be actually anything... nasty (formating HD, rebooting,...)
  1264. ;     or usefull (sorting, maintenance,...). Check!
  1265. ;     ■ Search for : SHELL
  1266. ;
  1267. ; f - Flag files for download ■ 3
  1268. ;     This may be normal if a PPE needs to send some files, but since
  1269. ;     this statement allows flagging of any file on the hard disk, you
  1270. ;     have to be carefull. Check!
  1271. ;     ■ Search for : FLAG
  1272. ;
  1273. ; d - Access PCBOARD.DAT ■ 2
  1274. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  1275. ;     for many PPE so they can find various informations on the system
  1276. ;     (system paths, max number of lines in messages, ...) but it may also
  1277. ;     be a way to gather vital informations.
  1278. ;     ■ Search for : PCBDAT()
  1279. ;
  1280. ;------------------------------------------------------------------------------
  1281. ;
  1282. ; Postprocessing report
  1283. ;
  1284. ;    18      For/Next
  1285. ;    4       While/EndWhile
  1286. ;    65      If/Then or If/Then/Else
  1287. ;    1       Select Case
  1288. ;
  1289. ;------------------------------------------------------------------------------
  1290. ;                 AEGiS Corp - Break the routines, code against the machines!
  1291. ;------------------------------------------------------------------------------
  1292.